/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package adsreis.com.Controls;

import adsreis.com.Beans.EntradasBean;
import adsreis.com.acessobd.AcessoMySql;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Pauroenriki
 */
public class EntradasControl {
   PreparedStatement pstm;
    ResultSet rs;
    String cadastraEntrada = "INSERT INTO ENTRADAS (CODENTRADA, IDFUNCIONARIO, DATAENTRADA) VALUES(?, ?, ?)";
    String buscaUltimoCodigo = "SELECT MAX(CODENTRADA) AS CODENTRADA FROM ENTRADAS";
    Integer codentrada;
    Integer duplicidade;
    String consultaEntradas = "SELECT ENTRADAS.CODENTRADA, ENTRADAS.IDFUNCIONARIO, FUNCIONARIOS.NOME, ENTRADAS.DATAENTRADA FROM ENTRADAS, FUNCIONARIOS WHERE ENTRADAS.IDFUNCIONARIO = CODFUNCIONARIO AND ENTRADAS.DATAENTRADA BETWEEN ? AND ?";
    String deletaentrada = "DELETE FROM ENTRADAS WHERE CODENTRADA = ?";
    
     public void excluirEntrada(int codentrada){
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(deletaentrada); 
           pstm.setInt(1, codentrada);
           pstm.executeUpdate();
           mysql.desconectar();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
     public List<EntradasBean> listarEntradas(Date dataInicial, Date dataFinal){
        try {
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(consultaEntradas);
            pstm.setDate(1, dataInicial);
            pstm.setDate(2, dataFinal);
            rs = pstm.executeQuery();
            List<EntradasBean> perda = new ArrayList<>();
            
            //duplicidade = 1;
            codentrada = 0;
            
            while (rs.next()){
                
                
                EntradasBean pb = new EntradasBean();
                duplicidade = rs.getInt("entradas.codentrada");
                if(duplicidade != codentrada){
                 
                
                
                pb.setCodEntrada(rs.getInt("entradas.codentrada"));
                pb.setIDFuncionario(rs.getInt("entradas.idfuncionario"));
                pb.setNomeFunc(rs.getString("funcionarios.nome"));
                pb.setDataEntrada(rs.getDate("entradas.dataentrada"));
                perda.add(pb);
                codentrada = rs.getInt("entradas.codentrada");
                
                } else{
                       
                
                }
                
            }
            mysql.desconectar();
            return perda;
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return null;
    }
     
      /* public void removerProduto(int codProduto){
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(excluiProduto); 
           pstm.setInt(1, codProduto);
           pstm.executeUpdate();
           mysql.desconectar();
        }catch(Exception e){
            e.printStackTrace();
        }
    }*/
    
    public int buscarCodigoUltimaEntrada(){
        try {
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(buscaUltimoCodigo);
            rs = pstm.executeQuery();
            if (rs.last()){
                return rs.getInt("codentrada");
            }
            mysql.desconectar();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return 0;
    }
     
      public void cadastrarEntrada(EntradasBean entrada){
        try {
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(cadastraEntrada);
            pstm.setInt(1, entrada.getCodEntrada());
            pstm.setInt(2, entrada.getIDFuncionario());
            pstm.setDate(3, entrada.getDataEntrada());
            pstm.executeUpdate();
            mysql.desconectar();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
    
    
}
